#ifndef __BASIC_ERRCODE_H__
#define __BASIC_ERRCODE_H__

#include <basic/misc.h>

__BEGIN_DECLS

#define RET_ERR_GENERAL_START   -1000       /* 通用错误开始 */
#define RET_ERR_PARA            -1000       /* 参数错误 */
#define RET_ERR_ALLOC           -1001       /* 资源分配出错 */
#define RET_ERR_TIMEOUT         -1002       /* 超时 */
#define RET_ERR_ABORT           -1003       /* 退出 */
#define RET_ERR_FILE_OPEN       -1004       /* 文件打开出错 */
#define RET_ERR_CONNECT         -1005       /* 连接出错 */
#define RET_ERR_DUPLICATE       -1006       /* 重复 */
#define RET_ERR_NOT_FOUND       -1007       /* 未找到 */
#define RET_ERR_INTERRUPT       -1008       /* 中断 */
#define RET_ERR_FILE_ACCESS     -1009       /* 文件属性错误 */
#define RET_ERR_DB              -1010       /* 数据库错误 */

/*
 * 清除错误码
 */
extern void
clear_error();

/*
 * 获取最近错误码和描述
 */
extern int	/* errno */
get_last_error(
        char *msg		/* [OUT] 错误描述
                               NULL:不生成错误描述 */
        );

/*
 * 获取最近错误码描述
 */
extern char *   /* 错误描述，即参数errmsg */
get_last_error_str(
        char *msg       /* [OUT] 错误描述
                               NULL:不生成错误描述 */
        );

__END_DECLS

#endif
